/*============================================================================
  File:      IDMAlgorithm.Stubs.h
 
  Summary:   IDMAlgorithm declarations to paste into header file for class 
			 implementing the new algorithm

  Date:		 September 12, 2003
------------------------------------------------------------------------------
  This file is part of the Microsoft SQL Server Code Samples.
 
  Copyright (C) 2003 Microsoft Corporation.  All rights reserved.
 
This source code is intended only as a supplement to Microsoft
Development Tools and/or on-line documentation.  See these other
materials for detailed information regarding Microsoft code samples.
 
THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
PARTICULAR PURPOSE.
============================================================================*/

// IDMAlgorithm

    STDMETHOD (Initialize)( 
        /* [in] */ IDMContextServices *in_pExeContext,
        /* [in] */ IDMAttributeSet *in_pAttributeSet,
        /* [in] */ IDMMarginalStat *in_pMarginalStat);
    
    STDMETHOD (InsertCases)( 
        /* [in] */ IDMContextServices *in_pExeContext,
        /* [in] */ IDMPushCaseSet *in_pCaseSet,
        /* [in] */ ULONG in_ulNumParameters,
        /* [in] */ WCHAR *in_rgParameterNames[  ],
        /* [in] */ DMVariantPtr in_rgParameterValues[  ]);
    
    STDMETHOD (Predict)( 
        /* [in] */ IDMContextServices *in_pContext,
        /* [in] */ DM_PREDICTION_FLAGS in_Flags,
        /* [in] */ IDMAttributeGroup *in_pPredAttGroup,
        /* [in] */ DM_CaseID in_CaseID,
        /* [in] */ ULONG in_ulCaseValues,
        /* [in] */ DM_ATTRIBUTE_VALUE *in_rgValues,
        /* [in] */ ULONG in_ulMaxPredictions,
        /* [in] */ ULONG in_ulMaxStates,
        /* [out] */ DM_ATTRIBUTE_STAT **io_prgPredictions,
        /* [out] */ ULONG *out_pulPredictions);
    
    STDMETHOD (GetNodeIDsForCase)( 
        /* [in] */ IDMContextServices *in_pContext,
        /* [in] */ DM_NODE_FLAGS in_Flags,
        /* [in] */ DM_CaseID in_CaseID,
        /* [in] */ ULONG in_ulCaseValues,
        /* [in] */ DM_ATTRIBUTE_VALUE *in_rgValues,
        /* [in] */ ULONG in_ulMaxNodeIDs,
        /* [out] */ DMStringPtr **io_prgNodeIDs,
        /* [out] */ ULONG *out_pulNodeIDs);
	  
    STDMETHOD (GetNavigator)( 
        /* [in] */ IDMContextServices *in_pContext,
        /* [in] */ BOOL in_fForDimensionContent,
        /* [out] */ IDMAlgorithmNavigation **out_ppDAGNav);
    
    STDMETHOD (GetSampleCaseSet)( 
        /* [in] */ IDMContextServices *in_pContext,
        /* [in] */ DMString *in_pstrNodeID,
        /* [out] */ IDMPullCaseSet **out_ppCaseSet);


	STDMETHOD (GetTrainingParameterActualValue)( 
		/* [in] */ IDMContextServices *in_pContext,
		/* [in] */ ULONG in_iParameter,
		/* [in] */ DMVariantPtr io_pParameterValue);

	STDMETHOD (HasFeatureSelection)( 
		/* [in] */ IDMContextServices *in_pContext,
		/* [out] */ BOOL *out_pHasFS);

	STDMETHOD (GetFeatureSelectedAttributes)( 
		/* [in] */ IDMContextServices *in_pContext,
		/* [out] */ ULONG *out_pCount,
		/* [out] */ DM_Attribute **out_prgFeatureSelectedAttributes,
		/* [out] */ DM_ATTRIBUTE_FLAGS **out_prgFSAttributeFlags);

	STDMETHOD (GetAttributeFeatureSelectionFlags)( 
		/* [in] */ IDMContextServices *in_pContext,
		/* [in] */ DM_Attribute in_nAttr,
		/* [out] */ DM_ATTRIBUTE_FLAGS *out_pAttFlags);

	STDMETHOD (GetProcessingMemoryEstimate)( 
		/* [in] */ IDMContextServices *in_pContext,
		/* [out] */ LONG *out_pEstimate);

	virtual void STDMETHODCALLTYPE UpdateMemoryEstimate( 
		/* [in] */ LONG in_lEstimateChange);

	virtual LONG STDMETHODCALLTYPE ReservedMemoryEstimate( void );

	STDMETHOD (RenderPMMLContent)( 
		/* [in] */ IDMContextServices *in_pContext,
		/* [in] */ ISAXContentHandler *in_pXMLWriter);

	STDMETHOD (PreInitializeForPMML21Parsing)( 
		/* [in] */ IDMContextServices *in_pContext,
		/* [in] */ IDMAttributeSet *in_pAttributeSet);

	STDMETHOD (GetPMMLAlgorithmSAXHandler)( 
		/* [in] */ IDMContextServices *in_pContext,
		/* [out] */ ISAXContentHandler **out_ppSAXHandler);



